package persistencia;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;

import modelo.Cliente;
import modelo.Producto;

public class ControladorBase {

	
	public int insertarCliente(int telefono, String domicilio, String nombre){
		
		Connection con;
		try {
			con = Conexion.conectar("bajon");
			Statement st = con.createStatement();
			String query = "INSERT INTO clientes (telefono,domicilio,nombre) VALUES ("+telefono+",'"+domicilio+"','"+nombre+"')";
			//String query = "INSERT INTO clientes (telefono,domicilio,nombre) VALUES (12,'1adsa','1sadsf')";
			System.out.println(query);
			//TODO fijarse que hacer con la respuesta y las excepciones
			int respuesta=st.executeUpdate(query);
			con.close();
			System.out.println("Respuesta"+respuesta);
			return 0;
		} catch (Exception e) {
			e.printStackTrace();
			return 1;
		}
	}
	
	public Vector<Cliente> cargarClientes() {
		Connection con;
		try {
			con = Conexion.conectar("bajon");
			Statement st = con.createStatement();
			String query = "SELECT id,telefono,domicilio,nombre FROM clientes ORDER BY id";
			
			ResultSet rs = st.executeQuery(query);
			Vector<Cliente> clientes=new Vector<Cliente>();
			while(rs.next()){
				Cliente nuevo = new Cliente(rs.getInt("id"),rs.getInt("telefono"),rs.getString("domicilio"),rs.getString("nombre"));
				clientes.add(nuevo);
			}
			con.close();
			return clientes;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		
		
	}

	public int insertarProducto(String nombre, float stock, int locked) {

		Connection con;
		try {
			con = Conexion.conectar("bajon");
			Statement st = con.createStatement();
			String query = "INSERT INTO productos (nombre,stock,locked) VALUES ('"+nombre+"','"+stock+"','"+locked+"')";
			//String query = "INSERT INTO clientes (telefono,domicilio,nombre) VALUES (12,'1adsa','1sadsf')";
			System.out.println(query);
			//TODO fijarse que hacer con la respuesta y las excepciones
			int respuesta=st.executeUpdate(query);
			con.close();
			System.out.println("Respuesta"+respuesta);
			return 0;
		} catch (Exception e) {
			e.printStackTrace();
			return 1;
		}
		
	}

	public Vector<Producto> cargarProductos() {
		Connection con;
		try {
			con = Conexion.conectar("bajon");
			Statement st = con.createStatement();
			String query = "SELECT id,nombre,stock,precio,locked FROM productos p INNER JOIN producto_precio pp ON p.id=pp.id_producto WHERE activo = 1 ORDER BY id";
			
			ResultSet rs = st.executeQuery(query);
			Vector<Producto> productos=new Vector<Producto>();
			while(rs.next()){
				Producto nuevo = new Producto(rs.getInt("id"),rs.getString("nombre"),rs.getFloat("precio"),rs.getFloat("stock"),rs.getInt("locked"));
				productos.add(nuevo);
			}
			con.close();
			return productos;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
}
